package com.ruoyi.quartz.task;

import com.ruoyi.common.utils.StringUtils;
import com.wash.shoes.domain.mtbusy.MtUpdateFulFillInfo;
import com.wash.shoes.service.CustomerService;
import com.wash.shoes.task.RyWashTask;
import lombok.extern.log4j.Log4j2;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;

/**
 * 定时任务调度测试
 *
 * @author ruoyi
 */
@Log4j2
@Component("ryTask")
public class RyTask {

    @Autowired
    MtUpdateFulFillInfo mtUpdateFulFillInfo;

    @Autowired
    CustomerService customerService;

    @Autowired
    RyWashTask ryWashTask;

    public void ryMultipleParams(String s, Boolean b, Long l, Double d, Integer i) {
        System.out.println(StringUtils.format("执行多参方法： 字符串类型{}，布尔类型{}，长整型{}，浮点型{}，整形{}", s, b, l, d, i));
    }

    public void ryParams(String params) {
        System.out.println("执行有参方法：" + params);
    }

    public void ryNoParams() {
        log.info("执行无参方法");
        mtUpdateFulFillInfo.initStatus();
    }

    public void ryCompleteOrder() {
        log.info("订单的状态处理的定时任务");
        mtUpdateFulFillInfo.initStatus();
    }

    public void ryUserOrderCount() {
        log.info("更新用户的订单的数量");
        customerService.updateOrderNum();
    }

    public void ryShoesFinishClear() {
        log.info("鞋子自动出库 定时任务鞋子自动出库 定时任务");
        ryWashTask.washShoeOut();
    }

    public void ryShoesRackUseNum() {
        log.info("鞋架使用数量.....");
        ryWashTask.countRackUserNums();
        log.info("鞋架使用数量.....任务完成....");
    }

    public void cancelPayOrder() {
        log.info("取消订单半个小时.....");
        ryWashTask.cancelPayOrder();
        log.info("取消订单半个小时.....任务完成....");
    }

    public void pushOrder() {
        log.info("推送订单单半个小时.....");
        ryWashTask.pushOrder();
        log.info("推送订单单半个小时.....任务完成....");
    }

    public void mtFullFillOrder() {
        log.info("美团订单履约完成.....");
        ryWashTask.mtFullFillOrder();
        log.info("美团订单履约完成.....任务完成....");
    }

    //小程序推销结算
    public void distributorSettlement() {
        log.info("分销上的结算.....");
        ryWashTask.distributorSettlement();
        log.info("分销上的结算.....任务完成....");
    }

    /**
     * 每天凌晨00：:00执行 ，每次执行1个小时，每次捞取10条
     * 抖音核销完成可以分账的订单
     */
    public void dyRevenueSharing() {
        log.info("抖音可以分账订单.....");
        ryWashTask.dyVerification();
    }

    /**
     * 查询抖音预约单子为预约中状态的,就去调用确认接单
     */
    public void dyAutoBooking() {
        log.info("查询抖音预约单子为预约中状态的,就去调用确认接单.....");
        ryWashTask.dyAutoBooking();
    }

    /**
     * 查询抖音未核销订单，如果未核销就去调用核销接口核销
     */
    public void dyCheckVerification() {
        log.info("查询抖音未核销订单，如果未核销就去核销.....");
        ryWashTask.dyCheckVerification();
    }

    /**
     * 定时更新每天的入库数据,纠正订单order表上的shoeNum字段为实际入库的订单对应的shoe表的实际条数
     */
    public void correctOrderShoeNum() {
        log.info("定时更新每天的入库数据,纠正订单order表上的shoeNum字段为实际入库的订单对应的shoe表的实际条数.....");
        ryWashTask.correctOrderShoeNum();
    }
}
